import { createRouter, createWebHashHistory } from "vue-router"


import { getLocalToken } from '@/utils/lib'

import Login from '@/views/login/Login.vue'

import Home from '@/views/home/Home.vue'

import Welcome from '@/views/welcome/Welcome.vue'

import User from '../views/user/User.vue'

import Rights from '../views/right/Rights.vue'
import Roles from '../views/right/Roles.vue'

// 创建路由规则对象
const routes = [

    { path: '/login', component: Login },
    {
        path: '/',
        name: 'home',
        component: Home,
        redirect: {
            path: 'welcome'
        },
        children: [

            {
                name: 'welcome',
                path: 'welcome',
                component: Welcome
            },
            {
                name: 'user',
                path: 'user',
                component: User
            },

            {
                name: 'Rights',
                path: 'rights',
                component: Rights
            },
            {
                name: 'Roles',
                path: 'roles',
                component: Roles
            }



        ]
    }

]

const router = createRouter({
    // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
    history: createWebHashHistory(),
    routes, // `routes: routes` 的缩写
})


//  导航守卫  
// // 注册一个全局守卫,作用是在路由跳转前,对路由进行判断,防止未登录的用户跳转到其他需要登录的页面去

// 如果已经登录，放行




router.beforeEach((to, from, next) => {
    if (!getLocalToken()) {// 没有登录 

        // 如果没有登录，访问非登录页面,则跳转到登录页面

        if (to.path != '/login') {
            next('/login')
        } else {
            // 如果没有登录，但访问的是登录页面,直接进入
            next()
        }



    } else {
        next() // 放行
    }

})







export default router